package com.xjh.basestudy.designmode.behaviorMode.behaviorMode7_Mediator.p2_mediator;

/**
 * @Author XuJianHua
 * @Date 2022/10/4 21:23
 * @Description
 *
 * 不管是谁发言，用户只需自第11行起进入中介聊天室与其建立连接，即可轻松将消息发送至所有在线用户，消息以广播的形式覆盖聊天室内的每一个角落。
 * 聊天室中介平台的搭建，让用户以一种间接的方式进行沟通，彻底从错综复杂的用户直接关联中解脱出来。
 *
 */
public class Client {

    public static void main(String[] args) {
        //聊天室实例化
        ChatRoom chatRoom = new ChatRoom("设计模式");
        //用户实例化
        User user3 = new User("张三");
        User user4 = new User("李四");
        User user5 = new User("王五");
        //张三、李四进入聊天室
        // 将聊天室对象set到该用户对象里
        user3.login(chatRoom);
        user4.login(chatRoom);
        /*********输出*************
         系统消息：欢迎【张三】加入聊天室【设计模式】
         系统消息：欢迎【李四】加入聊天室【设计模式】
         ******************************/
        //开始交谈
        // 调用聊天室对象的sendMsg方法
        user3.talk("你好，四兄弟，就你一个在啊？");
        /*********输出*************
         【张三的对话框】张三 说： 你好，四兄弟，就你一个在啊？
         【李四的对话框】张三 说： 你好，四兄弟，就你一个在啊？
         ******************************/
        user4.talk("是啊，三哥。");
        /*********输出*************
         【张三的对话框】李四 说： 早啊，三哥。
         【李四的对话框】李四 说： 是啊，三哥。
         ******************************/
        //王五进入聊天室
        user5.login(chatRoom);
        /*********输出*************
         系统消息：欢迎【王五】加入聊天室【设计模式】
         ******************************/
        user3.talk("瞧，王老五来了。");
        /*********输出*************
         【张三的对话框】张三 说： 瞧，王老五来了。
         【李四的对话框】张三 说： 瞧，王老五来了。
         【王五的对话框】张三 说： 瞧，王老五来了。
         ******************************/
    }

}